package server.models.plateau;

import java.io.Serializable;
import java.rmi.RemoteException;
import java.util.Observable;

import rmi.RemoteObserver;
import rmi.WrappedObserver;


public class Plateau extends Observable implements IPlateau, Serializable {

	private static final long serialVersionUID = 1L;
	
	private float valeurA;
	private float valeurB;
	
	public Plateau()
	{
		genererPlateau();

		this.setChanged();
		this.notifyObservers();
	}

	public float getValeurA() throws RemoteException {
		return valeurA;
	}

	public float getValeurB() throws RemoteException {
		return valeurB;
	}

	/**
	 * Fonction qui prepare le lanc� du plateau
	 * Determine la fonction math�matique repr�sentant la trajectoire du pigeon
	 */
	private void genererPlateau()
	{
		//Trouver 2 nombres random pour la fonction -Ax^2+B
		//plus ou moins -0.05x^2+5 
		//B entre 4 et 6 (-0.05x^2+4 et -0.05x^2+6)
		//A entre 0.04 et 0.06 (-0.04x^2+5 et -0.06x^2+5)
		
		//Utiliser le m�me nombre random (0.04 et 4) donne 
		
		// -(A/1000)x^2+A*10   ???
		
		
		//On trouve un nombre random entre 4 et 6 (7 exclue)
		int plusPetit = 4;
		int plusGrand = 7;
		int random = (int)(Math.random() * (plusGrand-plusPetit)) + plusPetit;
		
		float A = random/1000f;
		float B = random*10f;
		
		//On fait un objet plateau � renvoyer
		this.valeurA = A;
		this.valeurB = B;
	}

	@Override
	public void addObserver(RemoteObserver remoteObserver) throws RemoteException {
		this.addObserver(new WrappedObserver(remoteObserver));	
	}

}
